package com.superm.mappers;

import com.superm.entity.Stock;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 库存接口
 */
public interface StockMapper {
    /**
     *
     * @param st 根据指定条件查询
     * @param pageNo 分页
     * @param pageSize 分页
     * @return
     */
    List<Stock> allInventory(@Param("st") Stock st, @Param("pageNo") Integer pageNo, @Param("pageSize")Integer pageSize);

    /**
     * 根据指定编号查询指定信息
     * @param rid
     * @return
     */
    List<Stock> selectrIdMationInfo(@Param("rId") Integer rid);

    /**
     * 根据指定编号查询指定信息
     * @param rid
     * @return
     */
    List<Stock> selectrIdMationInfoTwo(@Param("rId") Integer rid);
    /**
     * 查询总条数
     * @param st
     * @return
     */
    Integer selectCount(@Param("st") Stock st);

    /**
     * 修改库存信息
     * @param st
     * @return
     */
    Integer upInventory(@Param("st") Stock st);

    /**
     * 批量删除库存信息
     * @param invs
     * @return
     */
    Integer delInventorys(@Param("invs") List<String> invs);

    /**
     * 添加一条库存信息
     * @param st
     * @return
     */
    Integer addInventory(@Param("st") Stock st);

    /**
     * 根据库存id 查询一条库存信息
     * @param stockId
     * @return
     */
    Stock  queryId(@Param("stockId")Integer stockId);



    /**
     * 根据库存id 查询一条库存信息
     * @param stockId
     * @return
     */
    Stock  queryIdTwo(@Param("stockId")Integer stockId);


    /**
     * 根据商品id 查询库存信息
     * @param goodsId
     * @return
     */
    Stock  selectGoodsId(@Param("goodsId")Integer goodsId);


    /**
     * 根据商品id 和库存id查询库存信息
     * @param goodsId
     * @return
     */
    Stock  selectGoodsIdAndRepostoryId(@Param("goodsId")Integer goodsId,@Param("repostoryId") Integer repostoryId);



    /**
     * 根据库存编号和减去的数量对库存进行减少
     * @param stockId
     * @param stockCount
     * @return
     */
    int decreaseStock(@Param("stockId") Integer stockId,@Param("stockCount") Integer stockCount);


    /**
     * 修改商品库存数量叠加
     * @param
     * @return
     */
    int updateMationInfo(@Param("stock") Stock stock);


}
